package com.quark.mapper.system;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.quark.model.system.gen.ColumnEntity;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author 张高昌
 * @date 2022/1/26 18:42
 * @description: 代码生成器接口
 */
public interface GeneratorMapper extends BaseMapper<ColumnEntity> {

    /**
     * 分页查询表格
     *
     * @param page      分页信息
     * @param tableName 表名称
     * @return
     */
    IPage<Map<String, Object>> queryTable(Page page, @Param("tableName") String tableName);

    /**
     * 查询表信息
     *
     * @param tableName 表名称
     * @param dsName    数据库名称
     * @return
     */
    @DS("#last")
    Map<String, String> queryTable(@Param("tableName") String tableName, String dsName);

    /**
     * 分页查询表分页信息
     *
     * @param page
     * @param tableName
     * @param dsName
     * @return
     */
    @DS("#last")
    IPage<ColumnEntity> selectTableColumn(Page page, @Param("tableName") String tableName,
                                          @Param("dsName") String dsName);

    /**
     * 查询表全部列信息
     *
     * @param tableName 表名称
     * @param dsName    数据源名称
     * @return
     */
    @DS("#last")
    List<Map<String, String>> selectMapTableColumn(@Param("tableName") String tableName, String dsName);
}
